package com.carter.springframework.cloud.openfeign;

public @interface EnableFeignClients {
    //指定需要的扫描包，下面的两个函数也是如此
    String[] value() default {};

    /**
     * Base packages to scan for annotated components.
     * <p>
     * {@link #value()} is an alias for (and mutually exclusive with) this attribute.
     * <p>
     * Use {@link #basePackageClasses()} for a type-safe alternative to String-based
     * package names.
     * @return the array of 'basePackages'.
     */
    String[] basePackages() default {};

    /**
     * Type-safe alternative to {@link #basePackages()} for specifying the packages to
     * scan for annotated components. The package of each class specified will be scanned.
     * <p>
     * Consider creating a special no-op marker class or interface in each package that
     * serves no purpose other than being referenced by this attribute.
     * @return the array of 'basePackageClasses'.
     */
    Class<?>[] basePackageClasses() default {};

    //指定自定义feign client的自定义配置，配置Decoder、Encoder、Contract等组件
    Class<?>[] defaultConfiguration() default {};

    //指定被 @FeignClients 修饰的类，如果不为空，那么路径自动检测则会被关闭
    Class<?>[] clients() default {};
}
